1. Field of the Invention
The present invention generally relates to annotation management, and more particularly, to managing and displaying annotations for multiple versions of data throughout the lifetime of the data.
2. Description of the Related Art
In today's modern computing world, it is possible for a plurality of people to collaborate on a single project without being in the same location at any time during the promulgation of the project. For example, scientists, authors, businessmen, etc. regularly transmit documents between remote peers to obtain their review and comment. Peer review and comment is generally geared toward obtaining the explicit knowledge and input that each of the peers may provide to the work produce that will, in the end, help to generate a better work product. Some well known methods for capturing and storing explicit knowledge that may be obtained from a peer review-type situation includes using a computer system, computer generated databases, word-processor documents, text files, spread-sheets, and many other formats that are commonly used for storing and retrieving data.
Oftentimes, this peer review data is analyzed by various individuals (e.g., experts, technicians, managers, researchers, co-workers, etc.), resulting in rich interpretive information that is often referred to as tacit knowledge. Generally, tacit knowledge is knowledge that is not made explicit. It may be highly personal, is oftentimes very transient, and usually requires joint, shared activities to be transmitted. Examples of tacit knowledge include subjective insights, intuitions, facts learned from conversational exchanges, and hunches. Despite its highly valuable quality, tacit knowledge is often only temporarily captured, for example, as cryptic notes in a lab notebook, discussions, conversations, instant messaging exchanges, e-mails messages, and other transient communications. Thus, because it is typically not captured systematically, tacit knowledge is often lost and does not have an impact on the work product.
One approach used to capture tacit knowledge is to create annotations relating to the explicit data representing the tacit knowledge. Virtually any identifiable type of data appearing in a data source may be annotated, including, but not limited to a matrix of data, such as a spreadsheet or database table, a text document, an image, multi-media data, objects, and/or other forms of data. Further, sub-portions of objects (sub-objects) or sub-portions of data may be annotated, for example, an individual cell, row or column in a database table or a page, section, paragraph or word in a document.
An annotation system generally operates to store descriptive information about objects, or parts of objects, without modifying the objects themselves directly. An annotation store, which is typically a database, stores descriptive information for an annotation, and an indexing scheme generally maps each annotation to the object, or position within the object. An advanced annotation system, such as the one described in a commonly owned, co-pending application entitled “Universal Annotation Management System,” which may be found under U.S. patent application Ser. No. 10/600,382, operates to store annotations separately from the corresponding data object and associates the annotations with an identifier that is location-independent. That is, the identifier does not depend on the location of a data source in a file system hierarchy or existence in a given database. Typically this identifier is derived from the document contents rather than from location artifacts such as filename, path, URL, etc.
Problems arise, however when source documents are changed, as management of the annotations related to the original document becomes an issue as the document changes. If an annotation is made in a document and then the content of the document is moved, changed, or deleted, then several kinds of potential synchronization problems may occur. For example, the content related to the annotation may no longer be present in the document, which leaves the annotation pointing at irrelevant information or no information at all. Alternatively, the annotation may point only to the old position of the text that is now in a new or second position in the document, as a result of changes or modifications to the document, or the words that the annotation points to may have been modified and the annotation may no longer make sense or be valid in view of the modified words. Additionally, the words the annotation refers to may still be correct, but the surrounding text may change the content, and thereby make the comment inaccurate. As an example, in a list of values, a value may be annotated as being the highest value encountered. At a later point in time after a higher value than the original highest value is added to the document, the original annotation will not be accurate, as the annotation was only correct in the context of the original document at its state when the comment was made.
Several algorithms may be used to try to synchronize the documents and associated annotations. For example, one method of dealing with these types of problems is to sidestep the synchronization completely and instead provide a way to manage the cross-references to documents and display of the annotations according to their historical snapshot at the time the annotation was made. Even if algorithms are used to correct annotation positions into a document, the need to see an annotation in its original context is an important capability to understanding an annotation and its applicability to the information.
Accordingly, there remains a need for method for managing annotations that allows for presentation both current and historical annotations, as well as a method for accessing documents related to the historical annotations.